import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
// 导入 VitePWA 插件
import { VitePWA } from 'vite-plugin-pwa'
// https://vite.dev/config/
export default defineConfig({
  plugins: [react(),
    // 配置 VitePWA
    VitePWA({
      registerType: 'autoUpdate', // Service Worker 注册类型，可选 'prompt' 或 'autoUpdate'
      manifest: { // Web App Manifest 配置
        name: 'Excalidraw PWA', // 应用全名
        short_name: 'Excalidraw', // 短名称（用于主屏幕）
        description: '一个集成了手绘白板的渐进式Web应用',
        theme_color: '#ffffff', // 主题颜色
        background_color: '#ffffff', // 启动屏背景色
        icons: [ // 应用图标配置，需准备多种尺寸
          {
            src: '/logo.svg', // 建议将图标文件放在 public 目录下
            sizes: '192x192',
            type: 'image/svg+xml'
          },
          {
            src: '/logo.svg',
            sizes: '512x512',
            type: 'image/svg+xml'
          },
          { // 可选，用于掩码图标
            src: '/logo.svg',
            sizes: '512x512',
            type: 'image/svg+xml',
            purpose: 'maskable'
          }
        ],
        start_url: '/', // 应用启动时打开的网址
        display: 'standalone', // 显示模式：fullscreen, standalone, minimal-ui, browser
        orientation: 'any' // 屏幕方向
      },
      workbox: { // Workbox 配置，用于控制缓存策略
        globPatterns: ['**/*.{js,css,html,ico,png,svg,woff2}'] // 缓存这些文件类型
      },
      devOptions: {
        enabled: true // 在开发环境下也启用 PWA，方便测试
      }
    })
  ],
  define: {
    'process.env': {}, 
    // 处理 process.env 未定义的问题
    // 或者根据某些特定需求设置
    "process.env.IS_PREACT": JSON.stringify("false"),
  },
})
